﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace mozhi.smarterp.AuthorCenter.Users
{
    public interface IUserTenantAppService : IApplicationService
    {
        Task<PagedResultDto<UserTenantDto>> GetListAsync(UserTenantFilter filter);

        Task<UserTenantDto> GetAsync(Guid id);

        Task<UserTenantDto> GetAsync(Guid userId, Guid tenantId);

        Task<List<UserTenantDto>> UpdateAsync(UserTenantUpdateDto input);

        Task DeleteAsync(Guid id);

        Task<string> GenerateUserTenantLoginToken(UserTenantSwitchDto input);

        Task<bool> VerifyUserTenantLoginTokenAsync(string userId, Guid? tenantId, string token);

        Task<UserTenantDto> GetCurrentAsync();
    }
}
